
# 序列的通用操作 。
"""
包括 ： 索引(下标) ，切片 ，相加 ，相乘 ，包含

一. 索引
1. 索引 ：支持的数据类型有 ：列表、元组、字符串
2. 格式 ：seq[index]
3. 说明 ：可以从左向右数 ，索引是从0开始 ，也可以从右向左数 ，索引是从-1开始。

二 、切片
1. 切片 ：从序列中有规律性的获取若干个值 ,同样适用于 ：列表、元组、字符串
2. 格式 ：seq[start:end:step]
    start : 开始索引 ，默认值为0
    end : 序列的长度 ，若输入的不是序列的长度的话，它代表就是结束索引 ，不包括该结束位置 。默认值为:序列的长度
    step : 步长 ，默认值1

三. 相加和相乘
相加 ： 两个同一数据类型的序列进行相加 ，seq1 + seq2 = seq
相乘 ： 序列和整数的乘  ，seq1 * number = seq
支持的数据类型有 ：列表、元组、字符串

四：检查元素 ：判断一个元素是否在另外一个元素中，支持数据类型包括：列表、元组、字符串、字典
使用格式 ：obj in seq
"""

lst = [1,2,3,4]
tp = (5,6,7,8)
my_str = "abcdefg"

# 获取第3个元素
print(lst[2])
print(tp[2])
print(my_str[2])

print(lst[-2])
print(tp[-2])
print(my_str[-5])


# 切片
lst2 = ['red','green','blue','black','gold','orange']
print("获取第2~5个元素:",lst2[1:5:1])
print("获取偶数的元素:",lst2[1:6:2])
print("获取奇数的元素:",lst2[0:6:2])

print("获取奇数的元素:",lst2[::2])
print("获取第2~5个元素:",lst2[1:5:])
print("获取第3个以及后面的元素:",lst2[2::])
print("获取第3个以及后面的元素:",lst2[2:])
print("获取第3个元素:",lst2[2])
print("将列表进行翻转:",lst2[::-1])
print("取第2个元素往后的所有偶数的元素:",lst2[1::2])
print("获取整个列表中的元素:",lst2[::])

# 相加相乘
print("abc"+"xyz")
print([1,2]+['x','y'])
print((1,2)+('x','y'))

# print("======================================")
print("="*30)
lst3 = [None] * 10
print(lst3)

# 检查元素
tp4 = ('hello','world','python')
lst4 = ['hello','world','python']
str4 = "hello world python"
dct4 = {"hello":1,"world":2,"python":3}

print("hello" in tp4)
print("hello" in lst4)
print("hello" in str4)
print("hello" in dct4)

print("java" in tp4)
print("java" in lst4)
print("java" in str4)
print("java" in dct4)

